package cn.cgj.flowable.service;

import org.flowable.engine.runtime.ProcessInstance;

import java.util.List;
import java.util.Map;

/**
 * flowable流程服务
 */
public interface FlowableService {

    /**
     * 发起流程
     *
     * @param key 流程key
     * @return 流程id
     */
    ProcessInstance startProcess(String key);

    /**
     * 审核任务
     *
     * @param processId 流程id
     * @param map 是否通过，map.put(outcome, passed | dismissed)
     */
    void auditTask(String processId, Map<String, Object> map);

    /**
     * 创建流程图
     *
     * @param processId 流程id
     * @return 流程图的base64字符串
     */
    String createFlowChart(String processId);

    /**
     * 加载流程文件
     *
     * @param list 流程文件路径集合
     */
    void loadFlowFile(List<String> list);

}
